15 Common Issues After a Magento 1 to Magento 2 Migration
During my Magento 2 career I’ve performed quite a few M1 to M2 migrations. Some were fairly simple white others took months to get right.
I’ve acquired some experience which I’d like to share with you today.
I’m going to list 15 common issues you might come across during or after a Magento Migration.
Hopefully I’ll save some of your time (and money).
Here they are:
1. Plan your migration carefully
Migrating to Magento 2 on your own is entirely possible. It’s a process that can save you thousands. However, a Magento migration is only successful when it is thought out and executed with focus. It is all too common for a shop owner to migrate their Magento site by themselves, only to mess up halfway through the process. Through that, you risk not your site going down, but you also risk losing valuable website information, which is every site owner’s worst nightmare.
To avoid this, be sure that you read different tutorials that highlight how a successful magento migration works. Also make sure that you have a sense of how Magento works when conducting the process.
It also helps to have a backup of your Magento 1 website handy. That way, if you start the migration process and find that you do want to hire a certified Magento developer instead, you will have a copy of your website so that it stays functioning and the developer has a better sense of what you were trying to accomplish.
2. Look out for data that needs to be migrated manually
When performing a Magento migration, please keep in mind that there are three things that need to be migrated manually:
- Media
- Storefront design
- Access Control Lists (ACLs)
To enter media data in manually, you simply have to do the following:
- Log into Magento 1 panel as an administrator
- Go to System→ Configuration→ Advanced→ System
- Scroll to Storage Configuration for Media
- Click Synchonize
Then just copy M1 media folder contents to M2 pub/media .
Your storefront design will also need to be migrated manually. This is because the locations for the CSS, JavaScript, and XML layouts have changed their location and format.
Another important piece of data that will have to be migrated manually are the Access Control Lists (ACLs). These controls include login information of the administrative user accounts and the credentials for web service APIs. Unfortunately, this type of data can not be transferred. They must be completely re-created and the user accounts need to be re-associated with access privileges.
On a final, but important, note, all of this should be done before actually migrating your data.
3. Source documents/fields not mapped.
Consider the following code:
Source documents are not mapped: <EXTENSION_TABLE>
Source fields are not mapped. Document: <EXTENSION_TABLE>.
Fields: <EXTENSION_FIELD>
In some rare cases, the message might mention destination documents or destination fields instead.
This is because the Data Migration Tool runs internal tests to verify that tables and fields across the website are consistent between Magento 1 (source) & Magento 2 (destination).
The easiest fix to this is to install the corresponding Magento 2 extensions.
If you’d like another option, you may use the -a argument when using the migration tool to resolve errors.
In order to ignore database entities, you would just have to add the following code into the map.xml file:
<ignore>
<field>sales_order_address_id</field>
</ignore>
It is worth noting, if you just wish to ignore the errors on your data, make sure you do not need the affected data in your Magento 2 store.
4. Volume Check Warnings
When you have successfully migrated your magento site, you have to capture the data updates that have been added to your magento store (such as new orders, reviews and changes in customer profiles) and transfer them to your new magento 2 website.
During this time, volume check warnings may appear when testing your Magento 2 website while running the migration process. This happens because Magento 2 creates entities that do not exist in Magento 1.
Updates will run regularly and it is encouraged to test your site so that you may catch any issues as soon as possible. In case you run into any such issues, you may just press ctrl + c, which will stop the data updates.
5. Brand New Installation of Magento 2
It is important to know that in order to perform a Magento 2 migration successfully, you need to make sure that your Magento 2 program is clear of any and all information.
Sometimes, developers will have some data migrated to Magento 2. However, they will want to migrate more data from scratch and if they don’t clean out their program, they’ll get an error message.
The best way to fix this is to just put run the following commands:
php bin/magento cache:flush
php bin/magento cache:clean
If you are a non-developer that was just playing around with Magento 2 before migrating any data, you may just remove the program and reinstall it again. However, it should be advised that removing and installing the program is only for an instance in which you do not have any important site information on the program.
6. Editing products after data migration
After data migration, developers have found themselves getting the following error when they try to update products:
‘Undefined offset in ReadHandler.php on line 166.’
This is likely because you have lost a Product Attribute that was provided in Magento 1, but not in Magento 2.
Check tables eav_attribute and catalog_eav_attribute to find a missing attribute.
7. SEO Friendly category URLs (Duplicate URLs)
During a Magento 2 migration, the rewrite functionality creates URLs for categories at the time of saving them. Therefore, when you enter a category from your Magento 1 website, Magento 2 will create a URL as if it were a new category. This has caused countless duplicate URLs in a Magento site, which has created many issues for SEO.
The following code should be able to take care of that:
auto_resolve_urlrewrite_duplicates
Enable the code in the config.xml file. Doing this will alert your code that there are URL rewrites and it will show the resolution result in your command line interface.
8. Unable to edit/update categories
A common report among developers and shop owners alike was that when you upgrade Magento 2, you may find yourself unable to update categories or products in the backend. In fact, you may even find the error below:
‘Class Magento\Catalog\Model\Product\Attribute\Backend\Media does not exist’
That means Magento 2 DB still has a ‘media_gallery’ attribute which was removed from M2 core files.
You can fix it by running this SQL command:
UPDATE eav_attribute SET backend_model = NULL, backend_type = 'static' WHERE attribute_code = 'media_gallery' |
9. Re-indexing Your Store
When you are performing your Magento 2 migration, it is really important to know that some of your indexers may be invalid.
To re-index your store, you simply need to go to your command-line interface and run the following code:
php bin/magento indexer:reindex
10. Migrating a huge database
Magento 2 migration process takes about one to three months to complete. Some stores might be small enough for the process to go by as quickly as one month. However, some of the larger stores take more time to migrate all of their information.
During this process, you need to remember to stay patient and make sure you take your time. One mistake could mess up your whole website. If you decide to hire a certified Magento developer, it is also important that you stay involved in the process.
To make sure that your website stays fully functional, it is recommended that you direct your traffic to a backup of your Magento 1 website.
11. Entity Mismatch
During the volume check migration, you may run into the following code:
Mismatch of entities in the document:
This usually happens when the Magento 2 database record count of the document is different from the Magento 1 database.
The best way to fix this is to run the Data Migration Tool in delta mode to transfer incremental changes.
12. Magento Themes and Extensions
When your website undergoes a Magento migration, the themes from your Magento 1 store will not be compatible with the new program. Therefore, you will have to dive deep into Magento 2’s internal program. Not only does that require extensive knowledge about Magento’s internal code and structure, but it may even require extensive knowledge of different programming languages (HTML, CSS, JavaScript, etc.)
With that said, it is easier to choose a new theme for Magento 2. There are two options that you would have when creating a new theme:
- You will have to look through premade themes until you find a theme that is suited for your store. Quite frankly, this is just the cheapest and the easiest option. The longest part of this process will just be deciding what theme to use.
- You may code your own Magento 2 theme so that you may have a theme that resembles your Magento 1 theme. However, if you are not a programmer, this may prove to be an expensive option. You may have to hire a Magento developer for a couple of months in order to achieve this.
Aside from that, Magento 1 extensions are not compatible with Magento 2. You will need to find, and install, new extensions that accomplish what your Magento 1 extensions did.
13. Delta log is not installed
When performing a Magento 2 migration, you may come across a code like this:
Deltalog for <TABLE_NAME> is not installed
This is an error that may occur during the incremental migration of changes to data. The data migration tool usually installs deltalog tables during data migration. This means that some deltalog tables were not found in the Magento 1 database.
Such an error may pop up because perhaps you are trying to migrate from a copy of your live Magento 1 store, rather than the live store itself. A disadvantage of the copy is that the copy does not contain the triggers and additional deltalog tables that are needed to complete a delta migration.
The best way to fix this is to test the migration process from a copy of your Magento 1 database, then find the issues on the copy. Once you have fixed those issues, you may start the process over again from you live Magento 1 database.
14. Creating Invoices
In some cases, developers have come across scenarios where they were unable to create invoices in their websites. This could simply mean that there was a small issue with the table that creates invoices.
The easiest fix for this is to go back into the table and add the appropriate columns.
15. Test Your Website Over and Over again
Before going live, it is incredibly important to test your new Magento 2 site thoroughly. Make sure all of your Magento 1 features have been successfully migrated into your Magento 2 site. Make sure your shopping cart and payment methods work. Test all possible shipping setups to make sure they work. Many people who attempt a Magento 2 migration usually feel that since the migration is over, the website should be okay. However, you do not need to hope that the website turns out okay. You should know that your shop is fully functional, stable, and profitable.
Therefore, it is always important to run a full test on your website first.
….
About the author: Konstantin Gerasimov is a Magento certified developer with Goivvy.com. He specializes in speed optimization, migration and general Magento support.
Looking for a web host that understands ecommerce and business hosting?
Check us out today!